Skip to main content

IdentityJwtAuthProvider<TUser, TRole>

Converts an MVC JwtBearer Cookie into a ServiceStack Session

Assembly: ServiceStack.Extensions.dll
View Source
Declaration
public class IdentityJwtAuthProvider<TUser, TRole> : AuthProvider, IAuthProvider, IAuthPlugin, IIdentityJwtAuthProvider, IAuthWithRequest, IAuthResponseFilter where TUser : IdentityUser where TRole : IdentityRole

Properties

Type

View Source
Declaration
public override string Type { get; }

DefaultIssuer

Default Issuer to use if unspecified

View Source
Declaration
public string DefaultIssuer { get; set; }

HashAlgorithm

Which Hash Algorithm should be used to sign the JWT Token. (default HS256)

View Source
Declaration
public string HashAlgorithm { get; set; }

AuthenticationScheme

Which JWT Authentication Scheme configuration to use (default Bearer)

View Source
Declaration
public string AuthenticationScheme { get; }

Options

The JWT Bearer Options to use (default populated from AuthenticationScheme JwtBearerOptions)

View Source
Declaration
public JwtBearerOptions Options { get; set; }

TokenValidationParameters

The JwtBearerOptions TokenValidationParameters short-hand

View Source
Declaration
public TokenValidationParameters TokenValidationParameters { get; set; }

ExpireTokensIn

How long should JWT Tokens be valid for. (default 14 days)

View Source
Declaration
public TimeSpan ExpireTokensIn { get; set; }

ExpireRefreshTokensIn

How long should JWT Refresh Tokens be valid for. (default 365 days)

View Source
Declaration
public TimeSpan ExpireRefreshTokensIn { get; set; }

ExpireTokensInDays

Convenient overload to initialize ExpireTokensIn with an Integer

View Source
Declaration
public int ExpireTokensInDays { set; }

RequireSecureConnection

Whether to only allow access via Bearer Token from a secure connection (default true)

View Source
Declaration
public bool RequireSecureConnection { get; set; }

ResolveJwtId

Change resolution for resolving unique jti id for Access Tokens

View Source
Declaration
public Func<IRequest, string>? ResolveJwtId { get; set; }

ResolveRefreshJwtId

Change resolution for resolving unique jti id for Refresh Tokens

View Source
Declaration
public Func<IRequest, string>? ResolveRefreshJwtId { get; set; }

Audience

Return Valid Audiences in comma-delimited string

View Source
Declaration
public string Audience { get; }

MapIdentityUserToClaims

View Source
Declaration
public List<(string fieldName, string claimType)> MapIdentityUserToClaims { get; set; }

NameClaimFieldNames

View Source
Declaration
public List<string> NameClaimFieldNames { get; set; }

OnTokenCreated

Customize which claims are included in the JWT Token

View Source
Declaration
public Action<IRequest, TUser, List<Claim>>? OnTokenCreated { get; set; }

OnRefreshTokenCreated

Customize which claims are included in the JWT Refresh Token

View Source
Declaration
public Action<IRequest, string, List<Claim>>? OnRefreshTokenCreated { get; set; }

OnSessionCreated

Run custom filter after session is restored from a JWT Token

View Source
Declaration
public Action<IAuthSession, List<Claim>, IRequest>? OnSessionCreated { get; set; }

Inherited Properties

AccountLockedValidator

View Source
Declaration
public Func<IAuthRepository, IUserAuth, IAuthTokens, bool> AccountLockedValidator { get; set; }

AuthEvents

View Source
Declaration
public IAuthEvents AuthEvents { get; }

AuthRealm

View Source
Declaration
public string AuthRealm { get; set; }

CallbackUrl

View Source
Declaration
public string CallbackUrl { get; set; }

CustomValidationFilter

View Source
Declaration
public Func<AuthContext, IHttpResult> CustomValidationFilter { get; set; }

ExcludeAuthInfoItems

View Source
Declaration
public HashSet<string> ExcludeAuthInfoItems { get; set; }

FormLayout

View Source
Declaration
public List<InputInfo> FormLayout { get; set; }

Icon

View Source
Declaration
public ImageInfo Icon { get; set; }

Label

View Source
Declaration
public string Label { get; set; }

LoadUserAuthFilter

View Source
Declaration
public Action<AuthUserSession, IAuthTokens, Dictionary<string, string>> LoadUserAuthFilter { get; set; }

LoadUserAuthInfoFilterAsync

View Source
Declaration
public Func<AuthUserSession, IAuthTokens, Dictionary<string, string>, CancellationToken, Task> LoadUserAuthInfoFilterAsync { get; set; }

Meta

View Source
Declaration
public virtual Dictionary<string, string> Meta { get; }

NavItem

View Source
Declaration
public NavItem NavItem { get; set; }

PersistSession

View Source
Declaration
public bool PersistSession { get; set; }

Provider

View Source
Declaration
public string Provider { get; set; }

RedirectUrl

View Source
Declaration
public string RedirectUrl { get; set; }

RestoreSessionFromState

View Source
Declaration
public bool? RestoreSessionFromState { get; set; }

SaveExtendedUserInfo

View Source
Declaration
public bool SaveExtendedUserInfo { get; set; }

SessionExpiry

View Source
Declaration
public TimeSpan? SessionExpiry { get; set; }

Sort

View Source
Declaration
public int Sort { get; set; }

Type

View Source
Declaration
public virtual string Type { get; }

Fields

Name

View Source
Declaration
public const string Name = null

Realm

View Source
Declaration
public const string Realm = null

Methods

NextJwtId()

Get the next AutoId for usage in jti JWT Access Tokens

View Source
Declaration
public string NextJwtId()
Returns

System.String

LastJwtId()

Get the last jti AutoId generated

View Source
Declaration
public string LastJwtId()
Returns

System.String

NextRefreshJwtId()

Get the next AutoId for usage in jti JWT Refresh Tokens

View Source
Declaration
public string NextRefreshJwtId()
Returns

System.String

LastRefreshJwtId()

View Source
Declaration
public string LastRefreshJwtId()
Returns

System.String

Register(IAppHost, AuthFeature)

View Source
Declaration
public override void Register(IAppHost appHost, AuthFeature feature)
Parameters
TypeName
ServiceStack.IAppHostappHost
ServiceStack.AuthFeaturefeature

AuthenticateResponseDecorator(AuthFilterContext)

View Source
Declaration
public object AuthenticateResponseDecorator(AuthFilterContext ctx)
Returns

System.Object

Parameters
TypeName
ServiceStack.Auth.AuthFilterContextctx

RegisterResponseDecorator(RegisterFilterContext)

View Source
Declaration
public object RegisterResponseDecorator(RegisterFilterContext ctx)
Returns

System.Object

Parameters
TypeName
ServiceStack.Auth.RegisterFilterContextctx

IsAuthorized(IAuthSession, IAuthTokens, Authenticate)

View Source
Declaration
public override bool IsAuthorized(IAuthSession session, IAuthTokens tokens, Authenticate request = null)
Returns

System.Boolean

Parameters
TypeName
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Auth.IAuthTokenstokens
ServiceStack.Authenticaterequest

AuthenticateAsync(IServiceBase, IAuthSession, Authenticate, CancellationToken)

View Source
Declaration
public override Task<object> AuthenticateAsync(IServiceBase authService, IAuthSession session, Authenticate request, CancellationToken token = null)
Returns

Task<System.Object>

Parameters
TypeName
ServiceStack.IServiceBaseauthService
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Authenticaterequest
CancellationTokentoken

PreAuthenticateAsync(IRequest, IResponse)

Populate ServiceStack Session from JWT

View Source
Declaration
public Task PreAuthenticateAsync(IRequest req, IResponse res)
Returns

Task

Parameters
TypeName
ServiceStack.Web.IRequestreq
ServiceStack.Web.IResponseres

CreateSessionFromClaims(IRequest, List<Claim>)

View Source
Declaration
public virtual IAuthSession CreateSessionFromClaims(IRequest req, List<Claim> claims)
Returns

ServiceStack.Auth.IAuthSession

Parameters
TypeName
ServiceStack.Web.IRequestreq
List<Claim>claims

EnableRefreshToken()

View Source
Declaration
protected virtual bool EnableRefreshToken()
Returns

System.Boolean

GetUserAndRolesAsync(IServiceBase, String)

View Source
Declaration
public async Task<(TUser, IEnumerable<string>)> GetUserAndRolesAsync(IServiceBase service, string email)
Returns

Task<System.ValueTuple<<TUser>,IEnumerable<System.String>>>

Parameters
TypeName
ServiceStack.IServiceBaseservice
System.Stringemail

ExecuteAsync(AuthFilterContext)

View Source
Declaration
public virtual async Task ExecuteAsync(AuthFilterContext authContext)
Returns

Task

Parameters
TypeName
ServiceStack.Auth.AuthFilterContextauthContext

CreateJwtBearerToken(IRequest, TUser, Nullable<IEnumerable<String>>)

View Source
Declaration
protected string? CreateJwtBearerToken(IRequest req, TUser user, IEnumerable<string>? roles = null)
Returns

System.Nullable<System.String>

Parameters
TypeName
ServiceStack.Web.IRequestreq
<TUser>user
System.Nullable<IEnumerable<System.String>>roles

CreateJwtRefreshToken(IRequest, String, TimeSpan)

View Source
Declaration
protected virtual string? CreateJwtRefreshToken(IRequest req, string userId, TimeSpan expireRefreshTokensIn)
Returns

System.Nullable<System.String>

Parameters
TypeName
ServiceStack.Web.IRequestreq
System.StringuserId
TimeSpanexpireRefreshTokensIn

ResultFilterAsync(AuthResultContext, CancellationToken)

View Source
Declaration
public async Task ResultFilterAsync(AuthResultContext authContext, CancellationToken token = null)
Returns

Task

Parameters
TypeName
ServiceStack.Auth.AuthResultContextauthContext
CancellationTokentoken

Inherited Methods

AuthenticateAsync(IServiceBase, IAuthSession, Authenticate, CancellationToken)

View Source
Declaration
public abstract Task<object> AuthenticateAsync(IServiceBase authService, IAuthSession session, Authenticate request, CancellationToken token = default(CancellationToken))
Returns

System.Threading.Tasks.Task<System.Object>

Parameters
TypeName
ServiceStack.IServiceBaseauthService
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Authenticaterequest
System.Threading.CancellationTokentoken

ConvertToClientError(Object, Boolean)

View Source
Declaration
protected virtual object ConvertToClientError(object failedResult, bool isHtml)
Returns

System.Object

Parameters
TypeName
System.ObjectfailedResult
System.BooleanisHtml

CreateAuthContext(IServiceBase, IAuthSession, IAuthTokens)

View Source
Declaration
protected virtual AuthContext CreateAuthContext(IServiceBase authService = null, IAuthSession session = null, IAuthTokens tokens = null)
Returns

ServiceStack.Auth.AuthContext

Parameters
TypeName
ServiceStack.IServiceBaseauthService
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Auth.IAuthTokenstokens

CreateOrMergeAuthSession(IAuthSession, IAuthTokens)

View Source
Declaration
public virtual string CreateOrMergeAuthSession(IAuthSession session, IAuthTokens tokens)
Returns

System.String

Parameters
TypeName
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Auth.IAuthTokenstokens

EmailAlreadyExistsAsync(IAuthRepositoryAsync, IUserAuth, IAuthTokens, CancellationToken)

View Source
Declaration
protected virtual async Task<bool> EmailAlreadyExistsAsync(IAuthRepositoryAsync authRepo, IUserAuth userAuth, IAuthTokens tokens = null, CancellationToken token = default(CancellationToken))
Returns

System.Threading.Tasks.Task<System.Boolean>

Parameters
TypeName
ServiceStack.Auth.IAuthRepositoryAsyncauthRepo
ServiceStack.Auth.IUserAuthuserAuth
ServiceStack.Auth.IAuthTokenstokens
System.Threading.CancellationTokentoken

FallbackConfig(String)

Allows specifying a global fallback config that if exists is formatted with the Provider as the first arg. E.g. this appSetting with the TwitterAuthProvider: oauth.CallbackUrl="http://localhost:11001/auth/{0}" Would result in: oauth.CallbackUrl="http://localhost:11001/auth/twitter"

View Source
Declaration
protected string FallbackConfig(string fallback)
Returns

System.String

Parameters
TypeName
System.Stringfallback

GetAuthRedirectUrl(IServiceBase, IAuthSession)

View Source
Declaration
protected virtual string GetAuthRedirectUrl(IServiceBase authService, IAuthSession session)
Returns

System.String

Parameters
TypeName
ServiceStack.IServiceBaseauthService
ServiceStack.Auth.IAuthSessionsession

GetAuthRepository(IRequest)

View Source
Declaration
protected virtual IAuthRepository GetAuthRepository(IRequest req)
Returns

ServiceStack.Auth.IAuthRepository

Parameters
TypeName
ServiceStack.Web.IRequestreq

GetAuthRepositoryAsync(IRequest)

View Source
Declaration
protected virtual IAuthRepositoryAsync GetAuthRepositoryAsync(IRequest req)
Returns

ServiceStack.Auth.IAuthRepositoryAsync

Parameters
TypeName
ServiceStack.Web.IRequestreq

GetReferrerUrl(IServiceBase, IAuthSession, Authenticate)

View Source
Declaration
protected virtual string GetReferrerUrl(IServiceBase authService, IAuthSession session, Authenticate request = null)
Returns

System.String

Parameters
TypeName
ServiceStack.IServiceBaseauthService
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Authenticaterequest

GetUserAuthRepositoryAsync(IRequest)

View Source
Declaration
public IUserAuthRepositoryAsync GetUserAuthRepositoryAsync(IRequest request)
Returns

ServiceStack.Auth.IUserAuthRepositoryAsync

Parameters
TypeName
ServiceStack.Web.IRequestrequest

IsAccountLockedAsync(IAuthRepositoryAsync, IUserAuth, IAuthTokens, CancellationToken)

View Source
Declaration
public virtual Task<bool> IsAccountLockedAsync(IAuthRepositoryAsync authRepoAsync, IUserAuth userAuth, IAuthTokens tokens = null, CancellationToken token = default(CancellationToken))
Returns

System.Threading.Tasks.Task<System.Boolean>

Parameters
TypeName
ServiceStack.Auth.IAuthRepositoryAsyncauthRepoAsync
ServiceStack.Auth.IUserAuthuserAuth
ServiceStack.Auth.IAuthTokenstokens
System.Threading.CancellationTokentoken

IsAuthorized(IAuthSession, IAuthTokens, Authenticate)

View Source
Declaration
public abstract bool IsAuthorized(IAuthSession session, IAuthTokens tokens, Authenticate request = null)
Returns

System.Boolean

Parameters
TypeName
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Auth.IAuthTokenstokens
ServiceStack.Authenticaterequest

LoadUserAuthInfo(AuthUserSession, IAuthTokens, Dictionary<String, String>)

View Source
Declaration
[Obsolete("Use LoadUserAuthInfoAsync")]
protected void LoadUserAuthInfo(AuthUserSession userSession, IAuthTokens tokens, Dictionary<string, string> authInfo)
Parameters
TypeName
ServiceStack.AuthUserSessionuserSession
ServiceStack.Auth.IAuthTokenstokens
System.Collections.Generic.Dictionary<System.String,System.String>authInfo

LoadUserAuthInfoAsync(AuthUserSession, IAuthTokens, Dictionary<String, String>, CancellationToken)

View Source
Declaration
protected virtual Task LoadUserAuthInfoAsync(AuthUserSession userSession, IAuthTokens tokens, Dictionary<string, string> authInfo, CancellationToken token = default(CancellationToken))
Returns

System.Threading.Tasks.Task

Parameters
TypeName
ServiceStack.AuthUserSessionuserSession
ServiceStack.Auth.IAuthTokenstokens
System.Collections.Generic.Dictionary<System.String,System.String>authInfo
System.Threading.CancellationTokentoken

LoginMatchesSession(IAuthSession, String)

View Source
Declaration
protected static bool LoginMatchesSession(IAuthSession session, string userName)
Returns

System.Boolean

Parameters
TypeName
ServiceStack.Auth.IAuthSessionsession
System.StringuserName

LogoutAsync(IServiceBase, Authenticate, CancellationToken)

Remove the Users Session

View Source
Declaration
public virtual async Task<object> LogoutAsync(IServiceBase service, Authenticate request, CancellationToken token = default(CancellationToken))
Returns

System.Threading.Tasks.Task<System.Object>

Parameters
TypeName
ServiceStack.IServiceBaseservice
ServiceStack.Authenticaterequest
System.Threading.CancellationTokentoken

OnAuthenticatedAsync(IServiceBase, IAuthSession, IAuthTokens, Dictionary<String, String>, CancellationToken)

View Source
Declaration
public virtual async Task<IHttpResult> OnAuthenticatedAsync(IServiceBase authService, IAuthSession session, IAuthTokens tokens, Dictionary<string, string> authInfo, CancellationToken token = default(CancellationToken))
Returns

System.Threading.Tasks.Task<ServiceStack.Web.IHttpResult>

Parameters
TypeName
ServiceStack.IServiceBaseauthService
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Auth.IAuthTokenstokens
System.Collections.Generic.Dictionary<System.String,System.String>authInfo
System.Threading.CancellationTokentoken

OnFailedAuthentication(IAuthSession, IRequest, IResponse)

View Source
Declaration
public virtual Task OnFailedAuthentication(IAuthSession session, IRequest httpReq, IResponse httpRes)
Returns

System.Threading.Tasks.Task

Parameters
TypeName
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Web.IRequesthttpReq
ServiceStack.Web.IResponsehttpRes

Register(IAppHost, AuthFeature)

View Source
Declaration
public virtual void Register(IAppHost appHost, AuthFeature feature)
Parameters
TypeName
ServiceStack.IAppHostappHost
ServiceStack.AuthFeaturefeature

UrlFilter(AuthContext, String)

View Source
Declaration
public static string UrlFilter(AuthContext provider, string url)
Returns

System.String

Parameters
TypeName
ServiceStack.Auth.AuthContextprovider
System.Stringurl

UserNameAlreadyExistsAsync(IAuthRepositoryAsync, IUserAuth, IAuthTokens, CancellationToken)

View Source
Declaration
protected virtual async Task<bool> UserNameAlreadyExistsAsync(IAuthRepositoryAsync authRepo, IUserAuth userAuth, IAuthTokens tokens = null, CancellationToken token = default(CancellationToken))
Returns

System.Threading.Tasks.Task<System.Boolean>

Parameters
TypeName
ServiceStack.Auth.IAuthRepositoryAsyncauthRepo
ServiceStack.Auth.IUserAuthuserAuth
ServiceStack.Auth.IAuthTokenstokens
System.Threading.CancellationTokentoken

ValidateAccountAsync(IServiceBase, IAuthRepositoryAsync, IAuthSession, IAuthTokens, CancellationToken)

View Source
Declaration
protected virtual async Task<IHttpResult> ValidateAccountAsync(IServiceBase authService, IAuthRepositoryAsync authRepo, IAuthSession session, IAuthTokens tokens, CancellationToken token = default(CancellationToken))
Returns

System.Threading.Tasks.Task<ServiceStack.Web.IHttpResult>

Parameters
TypeName
ServiceStack.IServiceBaseauthService
ServiceStack.Auth.IAuthRepositoryAsyncauthRepo
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Auth.IAuthTokenstokens
System.Threading.CancellationTokentoken

Implements